pub fn fast_sort(nums: &mut Vec<i32>, left: usize, right: usize) {
    if left >= right {
        return;
    }

    let mut l = left;
    let mut r = right;
    let privot = nums[l];
    while l != r {
        while l < r && privot >= nums[r] {
            r -= 1;
        }
        while l < r && privot <= nums[l] {
            l += 1;
        }
        if l < r {
            nums.swap(l, r);
        }
    }
    nums[left] = nums[l];
    nums[l] = privot;
    fast_sort(nums, left, l - 1);
    fast_sort(nums, l + 1, right);
}
